<?php
/*
 图像相关
 */

if(!defined("__CLASS_IMAGE__")){
	define("__CLASS_IMAGE__",1);

	class XMYImage {
		//图片类型
		var $type;
		//实际宽度
		var $width;
		//实际高度
		var $height;
		//改变后的宽度
		var $resize_width;
		//改变后的高度
		var $resize_height;
		//是否裁图
		var $cut;
		//源图象
		var $srcimg;
		//目标图象地址
		var $dstimg;
		//临时创建的图象
		var $im;

		function resizeimage($img, $img2, $wid, $hei,$c){
			$this->srcimg = $img;
			$this->dstimg = $img2;
			$this->resize_width = $wid;
			$this->resize_height = $hei;
			$this->cut = $c;
			//图片的类型
			$this->type = substr(strrchr($this->srcimg,"."),1);
			//初始化图象
			$this->initi_img();
			//--
			$this->width = imagesx($this->im);
			$this->height = imagesy($this->im);
			//生成图象
			$this->newimg();
			ImageDestroy ($this->im);
		}

		function newimg(){
			//改变后的图象的比例
			$resize_ratio = ($this->resize_width)/($this->resize_height);
			//实际图象的比例
			$ratio = ($this->width)/($this->height);
			//裁图
			if(($this->cut)=="1"){
				//高度优先
				if($ratio>=$resize_ratio){
					$newimg = imagecreatetruecolor($this->resize_width,$this->resize_height);
					imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width,$this->resize_height, (($this->height)*$resize_ratio), $this->height);
					ImageJpeg ($newimg,$this->dstimg,99);
				}
				
				//宽度优先
				if($ratio<$resize_ratio){
					$newimg = imagecreatetruecolor($this->resize_width,$this->resize_height);
					imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width)/$resize_ratio));
					ImageJpeg ($newimg,$this->dstimg,99);
				}
			}else{
				//不裁图
				if($ratio>=$resize_ratio){
					$newimg = imagecreatetruecolor($this->resize_width,($this->resize_width)/$ratio);
					imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio, $this->width, $this->height);
					ImageJpeg ($newimg,$this->dstimg,99);
				}
				if($ratio<$resize_ratio){
					$newimg = imagecreatetruecolor(($this->resize_height)*$ratio,$this->resize_height);
					imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, ($this->resize_height)*$ratio, $this->resize_height, $this->width, $this->height);
					ImageJpeg ($newimg,$this->dstimg,99);
				}
			}
		}
		//初始化图象
		function initi_img(){
			if($this->type=="jpg"){
				$this->im = imagecreatefromjpeg($this->srcimg);
			}
			if($this->type=="gif"){
				$this->im = imagecreatefromgif($this->srcimg);
			}
			if($this->type=="png"){
				$this->im = imagecreatefrompng($this->srcimg);
			}
		}
	} //end class

}//end if defined

?>